<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         *  0. await 只能在async函数中使用
         *  1. await 后面一般跟一个Promise对象一起使用，可以获取成功Promise对象的结果值
         *  2. await 配合 try catch相当于 then
         *  3. await 下面的代码，全部是异步的
         */

        // 不在async函数中会报错
        // let num = await 123;
        // console.log(num);

        let p = Promise.resolve('ok');
        let p2 = Promise.reject('error123');
        async function fn(){
            let num = 123;
            let res = await num;// 修饰一个非Promise对象的值，返回的还是原值

            let result = await p;// 修饰一个成功的promise对象，直接获取promise成功的结果值
            console.log('res: ',res);
            console.log('result: ',result);

            try{
                let result2 = await p2; // await右面是失败的promise，直接报错，所以要使用try。。catch，在catch中获取失败的结果值
                console.log(result2);
            }catch(e){
                console.log(e);
            }
        }
        fn();
    </script>
</body>
</html>